﻿// Copyright 2013 Ronald Schlenker, www.technewlogic.de.
// 
// This file is part of Byond.
// 
// Byond is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
// 
// Byond is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with Byond.  If not, see <http://www.gnu.org/licenses/>.

using Jacobi.Vst.Core;
using Jacobi.Vst.Core.Plugin;
using Jacobi.Vst.Framework;

namespace Byond.Vst
{
	class ByondPluginInfo : VstPluginInfo
	{
		public ByondPluginInfo()
		{
			// TODO: Ins / Outs
			AudioOutputCount = 2;
			Flags = VstPluginFlags.HasEditor
				| VstPluginFlags.CanReplacing
				| VstPluginFlags.ProgramChunks;

#if VST_SYNTH
			Flags = Flags | VstPluginFlags.IsSynth;
#endif

			PluginVersion = 1;
			InitialDelay = 0;

#if VST_EFFECT
			Category = VstPluginCategory.Effect;
			PluginID = 12432453;
			Name = "Byond Fx";
			AudioInputCount = 2;
#elif VST_SYNTH
			Category = VstPluginCategory.Synth;
			PluginID = 12432454;
			Name = "Byond Synth";
			AudioInputCount = 0;
#else
//#error VST_SYNTH or VST_EFFECT must be defined.
#endif

			ProductInfo = new VstProductInfo(Name, "ronald.schlenker@technewlogic.de", PluginVersion);
			Capabilities = VstPluginCapabilities.ReceiveTimeInfo;
		}

		public string Name { get; private set; }
		public VstProductInfo ProductInfo { get; private set; }
		public VstPluginCategory Category { get; private set; }
		public VstPluginCapabilities Capabilities { get; private set; }
	}
}
